import dayjs from 'dayjs/esm/index'
import {
	isEmpty
} from "./validates.js"
// import {
// 	checkAppVersionApi
// } from "@/api/home.js"

import {
	checkAppPermissions,
	CALL_PHONE
} from "@/utils/permissions.js"

import {
	silenceUpdate
} from "@/js_sdk/silence-update.js"

export const phoneHandler = (phone) => {
	checkAppPermissions([CALL_PHONE]).then(res => {
		if (res === 1) {
			uni.makePhoneCall({
				phoneNumber: phone
			})
		}
	})

}

import {
	hex_md5
} from "@/js_sdk/blueimp-md5/md5.js";
/**
 * md5
 */
export const md5Str = (pas) => {
	return hex_md5(pas);
};

// 加减乘除


/**
 * 日期时间格式化
 */
const timeFormats = {
	d: "YYYY-MM-DD",
	dt: "YYYY-MM-DD HH:mm:ss",
	y: "YYYY",
	ym: "YYYY-MM",
	ymc: "YYYY年MM月"
}


/**
 * 时间格式化
 * @param str 时间 string | "" | null
 * @param type 格式 timeFormats中 ： "d" | 'dt' | "y" | "ym" | "ymc"
 * @param defaultNow str为空时是否是哟并当前时间为默认时间
 */
export const timeFormat = (str, type, defaultNow = true) => {

	let layout = timeFormats[type] ?? ""
	if (defaultNow && isEmpty(str)) {
		return dayjs().format(layout)
	}

	if (!defaultNow && isEmpty(str)) {
		return ""
	}
	return dayjs(str).format(layout)
}

let checkLoading = false
//app版本检测
// export function checkAppVersion(isAuto = false) {
// 	// #ifdef APP-PLUS
// 	if (checkLoading) return
// 	checkLoading = true
// 	// 获取本地应用资源版本号
// 	return new Promise((resolve, reject) => {
// 		plus.runtime.getProperty(plus.runtime.appid, (inf) => {
// 			//获取服务器的版本号
// 			checkAppVersionApi({
// 				appid: inf.appid,
// 				editionNumber: inf.versionCode
// 			}).then(res => {
// 				if (res.code === 200 && res.result.id > 0) {
// 					//res.data.xxx根据后台返回的数据决定（我这里后端返回的是data），所以是res.data.data
// 					//判断后台返回版本号是否大于当前应用版本号 && 是否发行 （上架应用市场时一定不能弹出更新提示）
// 					if (Number(res.result.editionNumber) > Number(inf.versionCode) && res.result
// 						.editionIssue == 1) {
// 						//如果是wgt升级，并且是静默更新 （注意！！！ 如果是手动检查新版本，就不用判断静默更新，请直接跳转更新页，不然点击检查新版本后会没反应）
// 						if (res.result.packageType == 1 && res.result.editionSilence == 1 &&
// 							isAuto) {
// 							//调用静默更新方法 传入下载地址
// 							silenceUpdate(res.result.editionUrl)
// 						} else {
// 							//跳转更新页面 （注意！！！如果pages.json第一页的代码里有一打开就跳转其他页面的操作，下面这行代码最好写在setTimeout里面设置延时3到5秒再执行）
// 							let data = {
// 								describe: res.result.describe,
// 								edition_url: res.result.editionUrl,
// 								edition_force: res.result.editionForce, //是否强制更新 0代表否 1代表是
// 								package_type: res.result.packageType, //0是整包升级 1是wgt升级
// 								edition_name: res.result.editionName //后端返回的版本名称
// 							}
// 							if (isAuto) {
// 								setTimeout(() => {
// 									uni.navigateTo({
// 										url: '/pages/index/checkUpdate/checkUpdate?obj=' +
// 											JSON
// 											.stringify(data)
// 									});
// 								}, isAuto ? 3000 : 0)
// 							} else {
// 								resolve(data)
// 							}
// 						}
// 					} else {
// 						// 如果是手动检查新版本 需开启以下注释
// 						if (!isAuto) {
// 							uni.showToast({
// 								icon: "none",
// 								title: '已是最新版本',
// 								duration: 1000
// 							});
// 						}
// 						reject()
// 					}
// 				} else {
// 					reject()
// 				}
// 			}).finally(() => {
// 				checkLoading = false
// 			})
// 		});
// 	})
// 	// #endif
// }

//app版本检测
// export function checkAppHasUpdate() {
// 	// #ifdef APP-PLUS
// 	if (checkLoading) return
// 	checkLoading = true
// 	// 获取本地应用资源版本号
// 	return new Promise((resolve, reject) => {
// 		plus.runtime.getProperty(plus.runtime.appid, (inf) => {
// 			//获取服务器的版本号
// 			checkAppVersionApi({
// 				appid: inf.appid,
// 				editionNumber: inf.versionCode
// 			}).then(res => {
// 				if (res.code === 200 && res.result.id > 0) {
// 					//res.data.xxx根据后台返回的数据决定（我这里后端返回的是data），所以是res.data.data
// 					//判断后台返回版本号是否大于当前应用版本号 && 是否发行 （上架应用市场时一定不能弹出更新提示）
// 					if (Number(res.result.editionNumber) > Number(inf.versionCode) && res.result
// 						.editionIssue == 1) {
// 						resolve()
// 					} else {
// 						reject()
// 					}
// 				}
// 				reject()
// 			}).finally(() => {
// 				checkLoading = false
// 			})
// 		});
// 	})
// 	// #endif
// }